home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 3 / ct-rom iiib.zip / ct-rom iiib / WINDOWS / DIVERSEN / WINE02BX / EMACS.11 < prev    next >
Text File  |  1993-03-28  |  49KB  |  1,156 lines

  1. Info file ../info/emacs, produced by Makeinfo, -*- Text -*- from input
  2. file lemacs.tex.
  3.  
  4.    This file documents the GNU Emacs editor.
  5.  
  6.    Copyright (C) 1985, 1986, 1988 Richard M. Stallman.  Copyright (C)
  7. 1991, 1992 Lucid, Inc.
  8.  
  9.    Permission is granted to make and distribute verbatim copies of
  10. this manual provided the copyright notice and this permission notice
  11. are preserved on all copies.
  12.  
  13.    Permission is granted to copy and distribute modified versions of
  14. this manual under the conditions for verbatim copying, provided also
  15. that the sections entitled "The GNU Manifesto", "Distribution" and "GNU
  16. General Public License" are included exactly as in the original, and
  17. provided that the entire resulting derived work is distributed under
  18. the terms of a permission notice identical to this one.
  19.  
  20.    Permission is granted to copy and distribute translations of this
  21. manual into another language, under the above conditions for modified
  22. versions, except that the sections entitled "The GNU Manifesto",
  23. "Distribution" and "GNU General Public License" may be included in a
  24. translation approved by the author instead of in the original English.
  25.  
  26. 
  27. File: emacs,  Node: Mail Headers,  Next: Mail Mode,  Prev: Mail Format,  Up: Sending Mail
  28.  
  29. Mail Header Fields
  30. ==================
  31.  
  32.    There are several header fields you can use in the `*mail*' buffer. 
  33. Each header field starts with a field name at the beginning of a line,
  34. terminated by a colon.  It does not matter whether you use upper or
  35. lower case in the field name.  After the colon and optional whitespace
  36. comes the contents of the field.
  37.  
  38. `To'
  39.      This field contains the mailing addresses of the message.
  40.  
  41. `Subject'
  42.      The contents of the `Subject' field should be a piece of text that
  43.      says what the message is about.  Subject fields are useful
  44.      because most mail-reading programs can provide a summary of
  45.      messages, listing the subject of each message but not its text.
  46.  
  47. `CC'
  48.      This field contains additional mailing addresses to send the
  49.      message to, but whose readers should not regard the message as
  50.      addressed to them.
  51.  
  52. `BCC'
  53.      This field contains additional mailing addresses to send the
  54.      message to, but which should not appear in the header of the
  55.      message actually sent.
  56.  
  57. `FCC'
  58.      This field contains the name of one file (in Unix mail file
  59.      format) to which a copy of the message should be appended when
  60.      the message is sent.
  61.  
  62. `From'
  63.      Use the `From' field to say who you are, when the account you are
  64.      using to send the mail is not your own.  The contents of the
  65.      `From' field should be a valid mailing address, since replies
  66.      will normally go there.
  67.  
  68. `Reply-To'
  69.      Use the `Reply-to' field to direct replies to a different
  70.      address, not your own. `From' and `Reply-to' have the same effect
  71.      on where replies go, but they convey a different meaning to the
  72.      person who reads the message.
  73.  
  74. `In-Reply-To'
  75.      This field contains a piece of text describing a message you are
  76.      replying to.  Some mail systems can use the information to
  77.      correlate related pieces of mail.  Normally this field is filled
  78.      in by Rmail when you are replying to a message in Rmail, and you
  79.      never need to think about it (*note Rmail::.).
  80.  
  81. The `To', `CC', `BCC' and `FCC' fields can appear any number of times,
  82. to specify many places to send the message.
  83.  
  84. The `To', `CC', and `BCC' fields can have continuation lines.  All the
  85. lines starting with whitespace, following the line on which the field
  86. starts, are considered part of the field.  For example,
  87.  
  88.      To: foo@here, this@there,
  89.        me@gnu.cambridge.mass.usa.earth.spiral3281
  90.  
  91. If you have a `~/.mailrc' file, Emacs scans it for mail aliases the
  92. first time you try to send mail in an Emacs session.  Emacs expands
  93. aliases found in the `To', `CC', and `BCC' fields where appropriate.
  94. You can set the variable `mail-abbrev-mailrc-file' to the name of the
  95. file with mail aliases.  If `nil', `~/.mailrc' is used.
  96.  
  97.    Your `.mailrc' file ensures that word-abbrevs are defined for each
  98. of your mail aliases when point is in a `To', `CC', `BCC', or `From'
  99. field.  The aliases are defined in your `.mailrc' file or in a file
  100. specified by the `MAILRC' environment variable if it exists.  Your
  101. mail aliases expand any time you type a word-delimiter at the end of
  102. an abbreviation.
  103.  
  104.    In this version of Emacs, what you see is what you get: in contrast
  105. to some other versions, no abbreviations are expanded after you have
  106. sent the mail.  This means you don't suffer the annoyance of having
  107. the system do things behind your back -- if the system rewrites an
  108. address you typed, you know it immediately, instead of after the mail
  109. has been sent and it's too late to do anything about it.  For example,
  110. you will never again be in trouble because you forgot to delete an old
  111. alias from your `.mailrc' and a new local user is given a userid which
  112. conflicts with one of your aliases.
  113.  
  114.    Your mail alias abbrevs are in effect only when point is in an
  115. appropriate header field. The mail aliases will not expand in the body
  116. of the message, or in other header fields.  The default mode-specific
  117. abbrev table `mail-mode-abbrev-table' is used instead if defined. 
  118. That means if you have been using mail-mode specific abbrevs, this code
  119. will not adversely affect you.  You can control which header fields the
  120. abbrevs are used in by changing the variable `mail-abbrev-mode-regexp'.
  121.  
  122.    If auto-fill mode is on, abbrevs wrap at commas instead of at word
  123. boundaries and header continuation lines will be properly indented.
  124.  
  125.    You can also insert a mail alias with
  126. `mail-interactive-insert-alias'.  This function, which is bound to
  127. `C-c C-a', prompts you for an alias (with completion) and inserts its
  128. expansion at point.
  129.  
  130.    In this version of Emacs, it is possible to have lines like the
  131. following in your `.mailrc' file:
  132.  
  133.           alias someone "John Doe <doe@quux.com>"
  134.  
  135.    That is, if you want an address to have embedded spaces, simply
  136. surround it with double-quotes.  The quotes are necessary because the
  137. format of the `.mailrc' file uses spaces as address delimiters.
  138.  
  139.    Aliases in the mailrc file may be nested. For example, assume you
  140. define aliases like:
  141.  
  142.           alias group1 fred ethel
  143.           alias group2 larry curly moe
  144.           alias everybody group1 group2
  145.  
  146.    When you now type `everybody' on the `To' line, it will expand to
  147.  
  148.           fred, ethyl, larry, curly, moe
  149.  
  150.    Aliases may contain forward references; the alias of `everybody' in
  151. the example above can preceed the aliases of `group1' and `group2'.
  152.  
  153.    In this version of Emacs, you can use the `source' .mailrc command
  154. for reading aliases from some other file as well.
  155.  
  156.    Aliases may contain hyphens, as in `"alias foo-bar foo@bar"' even
  157. though word-abbrevs normally cannot contain hyphens.
  158.  
  159.    To read in the contents of another .mailrc-type file from Emacs,
  160. use the command `M-x merge-mail-aliases'.  The `rebuild-mail-aliases'
  161. command is similar, but deletes existing aliases first.
  162.  
  163.    If you would like your aliases to be expanded when you type `M->' or
  164. `C-n' to move from the mail-header into the message body, instead of
  165. having to type SPC at the end of the abbrev before moving away, use
  166. the following code:
  167.  
  168.       (setq mail-setup-hook
  169.            '(lambda ()
  170.               (define-key mail-mode-map "\C-n"
  171.                 'abbrev-hacking-next-line)
  172.               (define-key mail-mode-map "\M->"
  173.                 'abbrev-hacking-end-of-buffer)))
  174.  
  175.    If you want multiple addresses seperated by a string other than ",
  176. " then you set the variable `mail-alias-seperator-string' to it.  This
  177. has to be a comma bracketed by whitespace if you want any kind of
  178. reasonable behavior.
  179.  
  180.    If the variable `mail-archive-file-name' is non-`nil', it should be
  181. a string naming a file.  Each time you start to edit a message to
  182. send, an `FCC' field is entered for that file.  Unless you remove the
  183. `FCC' field, every message is written into that file when it is sent.
  184.  
  185. 
  186. File: emacs,  Node: Mail Mode,  Prev: Mail Headers,  Up: Sending Mail
  187.  
  188. Mail Mode
  189. =========
  190.  
  191.    The major mode used in the `*mail*' buffer is Mail mode.  Mail mode
  192. is similar to Text mode, but several commands are provided on the
  193. `C-c' prefix.  These commands all deal specifically with editing or
  194. sending the message.
  195.  
  196. `C-c C-s'
  197.      Send the message, and leave the `*mail*' buffer selected
  198.      (`mail-send').
  199.  
  200. `C-c C-c'
  201.      Send the message, and select some other buffer
  202.      (`mail-send-and-exit').
  203.  
  204. `C-c C-f C-t'
  205.      Move to the `To' header field, creating one if there is none
  206.      (`mail-to').
  207.  
  208. `C-c C-f C-s'
  209.      Move to the `Subject' header field, creating one if there is none
  210.      (`mail-subject').
  211.  
  212. `C-c C-f C-c'
  213.      Move to the `CC' header field, creating one if there is none
  214.      (`mail-cc').
  215.  
  216. `C-c C-w'
  217.      Insert the file `~/.signature' at the end of the message text
  218.      (`mail-signature').
  219.  
  220. `C-c C-y'
  221.      Yank the selected message from Rmail (`mail-yank-original'). 
  222.      This command does nothing unless your command to start sending a
  223.      message was issued with Rmail.
  224.  
  225. `C-c C-q'
  226.      Fill all paragraphs of yanked old messages, each individually
  227.      (`mail-fill-yanked-message').
  228.  
  229. `button3'
  230.      Pops up a menu of useful mail-mode commands.
  231.  
  232.    There are two ways to send a message.  `C-c C-c'
  233. (`mail-send-and-exit') is the usual way to send the message.  It sends
  234. the message and then deletes the window (if there is another window)
  235. or switches to another buffer.  It puts the `*mail*' buffer at the
  236. lowest priority for automatic reselection, since you are finished with
  237. using it.  `C-c C-s' (`mail-send') sends the message and marks the
  238. `*mail*' buffer unmodified, but leaves that buffer selected so that
  239. you can modify the message (perhaps with new recipients) and send it
  240. again.
  241.  
  242.    Mail mode provides some other special commands that are useful for
  243. editing the headers and text of the message before you send it.  There
  244. are three commands defined to move point to particular header fields,
  245. all based on the prefix `C-c C-f' (`C-f' is for "field").  They are
  246. `C-c C-f C-t' (`mail-to') to move to the `To' field, `C-c C-f C-s'
  247. (`mail-subject') for the `Subject' field, and `C-c C-f C-c'
  248. (`mail-cc') for the `CC' field.  These fields have special motion
  249. commands because they are edited most frequently.
  250.  
  251.    `C-c C-w' (`mail-signature') adds a standard piece of text at the
  252. end of the message to say more about who you are.  The text comes from
  253. the file `.signature' in your home directory.
  254.  
  255.    When you use an Rmail command to send mail from the Rmail mail
  256. reader, you can use `C-c C-y' inside the `*mail*' buffer to insert the
  257. text of the message you are replying to.  Normally Rmail indents each
  258. line of that message four spaces and eliminates most header fields.  A
  259. numeric argument specifies the number of spaces to indent.  An argument
  260. of just `C-u' says not to indent at all and not to eliminate anything.
  261.  `C-c C-y' always uses the current message from the `RMAIL' buffer, so
  262. you can insert several old messages by selecting one in `RMAIL',
  263. switching to `*mail*' and yanking it, then switching back to `RMAIL'
  264. to select another.
  265.  
  266.    After using `C-c C-y', you can use the command `C-c C-q'
  267. (`mail-fill-yanked-message') to fill the paragraphs of the yanked old
  268. message or messages.  One use of `C-c C-q' fills all such paragraphs,
  269. each one separately.
  270.  
  271.    Clicking the right mouse button in a mail buffer pops up a menu of
  272. the above commands, for easy access.
  273.  
  274.    Turning on Mail mode (which `C-x m' does automatically) calls the
  275. value of `text-mode-hook', if it is not void or `nil', and then calls
  276. the value of `mail-mode-hook' if that is not void or `nil'.
  277.  
  278. 
  279. File: emacs,  Node: Rmail,  Next: Recursive Edit,  Prev: Sending Mail,  Up: Top
  280.  
  281. Reading Mail with Rmail
  282. ***********************
  283.  
  284.    Rmail is an Emacs subsystem for reading and disposing of mail that
  285. you receive.  Rmail stores mail messages in files called Rmail files. 
  286. You read the messages in an Rmail file in a special major mode, Rmail
  287. mode, which redefines most letters to run commands for managing mail. 
  288. To enter Rmail, type `M-x rmail'.  This reads your primary mail file,
  289. merges new mail in from your inboxes, displays the first new message,
  290. and lets you begin reading.
  291.  
  292.    Using Rmail in the simplest fashion, you have one Rmail file
  293. `~/RMAIL' in which all of your mail is saved.  It is called your
  294. "primary mail file".  You can also copy messages into other Rmail
  295. files and then edit those files with Rmail.
  296.  
  297.    Rmail displays only one message at a time.  It is called the
  298. "current message".  Rmail mode's special commands can move to another
  299. message, delete the message, copy the message into another file, or
  300. send a reply.
  301.  
  302.    Within the Rmail file, messages are arranged sequentially in order
  303. of receipt.  They are also assigned consecutive integers as their
  304. "message numbers".  The number of the current message is displayed in
  305. Rmail's mode line, followed by the total number of messages in the
  306. file.  You can move to a message by specifying its message number
  307. using the `j' key (*note Rmail Motion::.).
  308.  
  309.    Following the usual conventions of Emacs, changes in an Rmail file
  310. become permanent only when the file is saved.  You can do this with `s'
  311. (`rmail-save'), which also expunges deleted messages from the file
  312. first (*note Rmail Deletion::.).  To save the file without expunging,
  313. use `C-x C-s'.  Rmail saves the Rmail file automatically when moving
  314. new mail from an inbox file (*note Rmail Inbox::.).
  315.  
  316.    You can exit Rmail with `q' (`rmail-quit'); this expunges and saves
  317. the Rmail file and then switches to another buffer.  But there is no
  318. need to `exit' formally.  If you switch from Rmail to editing in other
  319. buffers, and never happen to switch back, you have exited.  Just make
  320. sure to save the Rmail file eventually (like any other file you have
  321. changed).  `C-x s' is a good enough way to do this (*note Saving::.).
  322.  
  323. * Menu:
  324.  
  325. * Scroll: Rmail Scrolling.   Scrolling through a message.
  326. * Motion: Rmail Motion.      Moving to another message.
  327. * Deletion: Rmail Deletion.  Deleting and expunging messages.
  328. * Inbox: Rmail Inbox.        How mail gets into the Rmail file.
  329. * Files: Rmail Files.        Using multiple Rmail files.
  330. * Output: Rmail Output.         Copying message out to files.
  331. * Labels: Rmail Labels.      Classifying messages by labeling them.
  332. * Summary: Rmail Summary.    Summaries show brief info on many messages.
  333. * Reply: Rmail Reply.        Sending replies to messages you are viewing.
  334. * Editing: Rmail Editing.    Editing message text and headers in Rmail.
  335. * Digest: Rmail Digest.      Extracting the messages from a digest message.
  336.  
  337. 
  338. File: emacs,  Node: Rmail Scrolling,  Next: Rmail Motion,  Prev: Rmail,  Up: Rmail
  339.  
  340. Scrolling Within a Message
  341. ==========================
  342.  
  343.    When Rmail displays a message that does not fit on the screen, you
  344. have to scroll through it.  You could use `C-v', `M-v' and `M-<', but
  345. scrolling is so frequent in Rmail that it deserves to be easier to
  346. type.
  347.  
  348. `SPC'
  349.      Scroll forward (`scroll-up').
  350.  
  351. `DEL'
  352.      Scroll backward (`scroll-down').
  353.  
  354. `.'
  355.      Scroll to start of message (`rmail-beginning-of-message').
  356.  
  357.    Since the most common thing to do while reading a message is to
  358. scroll through it by screenfuls, Rmail makes SPC and DEL synonyms of
  359. `C-v' (`scroll-up') and `M-v' (`scroll-down')
  360.  
  361.    The command `.' (`rmail-beginning-of-message') scrolls back to the
  362. beginning of a selected message.  This is not quite the same as `M-<':
  363. first, it does not set the mark; secondly, it resets the buffer
  364. boundaries to the current message if you have changed them.
  365.  
  366. 
  367. File: emacs,  Node: Rmail Motion,  Next: Rmail Deletion,  Prev: Rmail Scrolling,  Up: Rmail
  368.  
  369. Moving Among Messages
  370. =====================
  371.  
  372.    The most basic thing to do with a message is to read it.  The way to
  373. do this in Rmail is to make the message current.  You can make any
  374. message current given its message number using the `j' command, but
  375. people most often move sequentially through the file, since this is the
  376. order of receipt of messages.  When you enter Rmail, you are positioned
  377. at the first new message (new messages are those received after you
  378. last used Rmail), or at the last message if there are no new messages
  379. this time.  Move forward to see other new messages if there are any;
  380. move backward to re-examine old messages.
  381.  
  382. `n'
  383.      Move to the next non-deleted message, skipping any intervening
  384.      deleted 
  385.       messages (`rmail-next-undeleted-message').
  386.  
  387. `p'
  388.      Move to the previous non-deleted message 
  389.       (`rmail-previous-undeleted-message').
  390.  
  391. `M-n'
  392.      Move to the next message, including deleted messages
  393.      (`rmail-next-message').
  394.  
  395. `M-p'
  396.      Move to the previous message, including deleted messages
  397.      (`rmail-previous-message').
  398.  
  399. `j'
  400.      Move to the first message.  With argument N, move to message
  401.      number N (`rmail-show-message').
  402.  
  403. `>'
  404.      Move to the last message (`rmail-last-message').
  405.  
  406. `M-s REGEXP RET'
  407.      Move to the next message containing a match for REGEXP
  408.      (`rmail-search').  If REGEXP is empty, the last regexp used is
  409.      used again.
  410.  
  411. `- M-s REGEXP RET'
  412.      Move to the previous message containing a match for REGEXP.  If
  413.      REGEXP is empty, the last regexp used is used again.
  414.  
  415.    To move among messages in Rmail, you can use `n' and `p'.  These
  416. keys move through the messages sequentially, but skip over deleted
  417. messages, which is usually what you want to do.  Their command
  418. definitions are named `rmail-next-undeleted-message' and
  419. `rmail-previous-undeleted-message'.  If you do not want to skip
  420. deleted messages--for example, if you want to move to a message to
  421. undelete it--use the variants `M-n' (`rmail-next-message' and `M-p'
  422. `rmail-previous-message').  A numeric argument to any of these
  423. commands serves as a repeat count.
  424.  
  425.    In Rmail, you can specify a numeric argument by just typing the
  426. digits.  It is not necessary to type `C-u' first.
  427.  
  428.    The `M-s' (`rmail-search') command is Rmail's version of search. 
  429. The usual incremental search command `C-s' works in Rmail, but
  430. searches only within the current message.  The purpose of `M-s' is to
  431. search for another message.  It reads a regular expression (*note
  432. Regexps::.) non-incrementally, then searches starting at the beginning
  433. of the following message for a match.  The message containing the
  434. match is selected.
  435.  
  436.    To search backward in the file for another message, give `M-s' a
  437. negative argument.  In Rmail you can do this with `- M-s'.
  438.  
  439.    It is also possible to search for a message based on labels.  *Note
  440. Rmail Labels::.
  441.  
  442.    To move to a message specified by absolute message number, use `j'
  443. (`rmail-show-message') with the message number as argument.  With no
  444. argument, `j' selects the first message.  `>' (`rmail-last-message')
  445. selects the last message.
  446.  
  447. 
  448. File: emacs,  Node: Rmail Deletion,  Next: Rmail Inbox,  Prev: Rmail Motion,  Up: Rmail
  449.  
  450. Deleting Messages
  451. =================
  452.  
  453.    When you no longer need to keep a message, you can "delete" it. 
  454. This flags it as ignorable, and some Rmail commands will pretend it is
  455. no longer present; but it still has its place in the Rmail file, and
  456. still has its message number.
  457.  
  458.    "Expunging" the Rmail file actually removes the deleted messages. 
  459. The remaining messages are renumbered consecutively.  Expunging is the
  460. only action that changes the message number of any message, except for
  461. undigestifying (*note Rmail Digest::.).
  462.  
  463. `d'
  464.      Delete the current message, and move to the next non-deleted
  465.      message (`rmail-delete-forward').
  466.  
  467. `C-d'
  468.      Delete the current message, and move to the previous non-deleted
  469.      message (`rmail-delete-backward').
  470.  
  471. `u'
  472.      Undelete the current message, or move back to a deleted message
  473.      and undelete it (`rmail-undelete-previous-message').
  474.  
  475. `x'
  476. `e'
  477.      Expunge the Rmail file (`rmail-expunge').  These two commands are
  478.      synonyms.
  479.  
  480.    There are two Rmail commands for deleting messages.  Both delete the
  481. current message and select another message.  `d'
  482. (`rmail-delete-forward') moves to the following message, skipping
  483. messages already deleted, while `C-d' (`rmail-delete-backward') moves
  484. to the previous non-deleted message.  If there is no non-deleted
  485. message to move to in the specified direction, the message that was
  486. just deleted remains current.
  487.  
  488.    To make all deleted messages disappear from the Rmail file, type
  489. `e' (`rmail-expunge').  Until you do this, you can still "undelete"
  490. the deleted messages.
  491.  
  492.    To undelete, type `u' (`rmail-undelete-previous-message'), which
  493. cancels the effect of a `d' command (usually).  It undeletes the
  494. current message if the current message is deleted.  Otherwise it moves
  495. backward to previous messages until a deleted message is found, and
  496. undeletes that message.
  497.  
  498.    You can usually undo a `d' with a `u' because the `u' moves back to
  499. and undeletes the message that the `d' deleted.  This does not work
  500. when the `d' skips a few already-deleted messages that follow the
  501. message being deleted; in that case the `u' command undeletes the last
  502. of the messages that were skipped.  There is no clean way to avoid
  503. this problem.  However, by repeating the `u' command, you can
  504. eventually get back to the message you intended to undelete.  You can
  505. also reach that message with `M-p' commands and then type `u'.
  506.  
  507.    A deleted message has the `deleted' attribute, and as a result
  508. `deleted' appears in the mode line when the current message is
  509. deleted.  In fact, deleting or undeleting a message is nothing more
  510. than adding or removing this attribute.  *Note Rmail Labels::.
  511.  
  512. 
  513. File: emacs,  Node: Rmail Inbox,  Next: Rmail Files,  Prev: Rmail Deletion,  Up: Rmail
  514.  
  515. Rmail Files and Inboxes
  516. =======================
  517.  
  518.    Unix places your incoming mail in a file called your "inbox".  When
  519. you start up Rmail, it copies the new messages from your inbox into
  520. your primary mail file, an Rmail file which also contains other
  521. messages saved from previous Rmail sessions.  In this file, you
  522. actually read the mail with Rmail.  The operation is called "getting
  523. new mail".  You can repeat it at any time using the `g' key in Rmail. 
  524. The inbox file name is `/usr/spool/mail/USERNAME' in Berkeley Unix,
  525. `/usr/mail/USERNAME' in system V.
  526.  
  527.    There are two reason for having separate Rmail files and inboxes.
  528.  
  529.   1. The format in which Unix delivers the mail in the inbox is not
  530.      adequate for Rmail mail storage.  It has no way to record
  531.      attributes (such as `deleted') or user-specified labels; it has
  532.      no way to record old headers and reformatted headers; it has no
  533.      way to record cached summary line information.
  534.  
  535.   2. It is very cumbersome to access an inbox file without danger of
  536.      losing mail, because it is necessary to interlock with mail
  537.      delivery.  Moreover, different Unix systems use different
  538.      interlocking techniques.  The strategy of moving mail out of the
  539.      inbox once and for all into a separate Rmail file avoids the need
  540.      for interlocking in all the rest of Rmail, since only Rmail
  541.      operates on the Rmail file.
  542.  
  543.    When getting new mail, Rmail first copies the new mail from the
  544. inbox file to the Rmail file and saves the Rmail file.  It then
  545. deletes the inbox file.  This way, a system crash may cause
  546. duplication of mail between the inbox and the Rmail file, but cannot
  547. lose mail.
  548.  
  549.    Copying mail from an inbox in the system's mailer directory
  550. actually puts it in an intermediate file `~/.newmail'.  This is
  551. because the interlocking is done by a C program that copies to another
  552. file.  `~/.newmail' is deleted after mail merging is successful.  If
  553. there is a crash at the wrong time, this file will continue to exist
  554. and will be used as an inbox the next time you get new mail.
  555.  
  556. 
  557. File: emacs,  Node: Rmail Files,  Next: Rmail Output,  Prev: Rmail Inbox,  Up: Rmail
  558.  
  559. Multiple Mail Files
  560. ===================
  561.  
  562.    Rmail operates by default on your "primary mail file", which is
  563. named `~/RMAIL' and receives your incoming mail from your system inbox
  564. file.  But you can also have other mail files and edit them with
  565. Rmail.  These files can receive mail through their own inboxes, or you
  566. can move messages into them by explicit command in Rmail (*note Rmail
  567. Output::.).
  568.  
  569. `i FILE RET'
  570.      Read FILE into Emacs and run Rmail on it (`rmail-input').
  571.  
  572. `M-x set-rmail-inbox-list RET FILES RET'
  573.      Specify inbox file names for current Rmail file to get mail from.
  574.  
  575. `g'
  576.      Merge new mail from current Rmail file's inboxes
  577.      (`rmail-get-new-mail').
  578.  
  579. `C-u g FILE'
  580.      Merge new mail from inbox file FILE.
  581.  
  582.    To run Rmail on a file other than your primary mail file, you may
  583. use the `i' (`rmail-input') command in Rmail.  This visits the file,
  584. puts it in Rmail mode, and then gets new mail from the file's inboxes
  585. if any.  You can also use `M-x rmail-input' even when not in Rmail.
  586.  
  587.    The file you read with `i' does not have to be in Rmail file format. 
  588. It could also be Unix mail format, or mmdf format; or it could be a
  589. mixture of all three, as long as each message has one of the three
  590. formats.  Rmail recognizes all three and converts all the messages to
  591. proper Rmail format before showing you the file.
  592.  
  593.    Each Rmail file can contain a list of inbox file names; you can
  594. specify this list with `M-x set-rmail-inbox-list RET FILES RET'.  The
  595. argument can contain any number of file names, separated by commas. 
  596. It can also be empty, which specifies that this file should have no
  597. inboxes.  Once a list of inboxes is specified, the Rmail file
  598. remembers it permanently until it is explicitly changed.
  599.  
  600.    If an Rmail file has inboxes, new mail is merged in from the inboxes
  601. when you bring the Rmail file into Rmail, and when you use the `g'
  602. (`rmail-get-new-mail') command.  If the Rmail file specifies no
  603. inboxes, then no new mail is merged in at these times.  A special
  604. exception is made for your primary mail file: Rmail uses the standard
  605. system inbox for it if it does not specify an inbox.
  606.  
  607.    To merge mail from a file that is not the usual inbox, give the `g'
  608. key a numeric argument, as in `C-u g'.  Rmail prompts you for a file
  609. name and merges mail from the file you specify.  The inbox file is not
  610. deleted or changed in any way when you use `g' with an argument.  This
  611. is, therefore, a general way of merging one file of messages into
  612. another.
  613.  
  614. 
  615. File: emacs,  Node: Rmail Output,  Next: Rmail Labels,  Prev: Rmail Files,  Up: Rmail
  616.  
  617. Copying Messages Out to Files
  618. =============================
  619.  
  620. `o FILE RET'
  621.      Append a copy of the current message to the file FILE, writing it
  622.      in Rmail file format (`rmail-output-to-rmail-file').
  623.  
  624. `C-o FILE RET'
  625.      Append a copy of the current message to the file FILE, writing it
  626.      in Unix mail file format (`rmail-output').
  627.  
  628.    If an Rmail file has no inboxes, use explicit `o' commands to write
  629. Rmail files.
  630.  
  631.    `o' (`rmail-output-to-rmail-file') appends the current message in
  632. Rmail format to the end of a specified file.  This is the best command
  633. to use to move messages between Rmail files.  If you are currently
  634. visiting the other Rmail file, copying is done into the other file's
  635. Emacs buffer instead.  You should eventually save the buffer on disk.
  636.  
  637.    The `C-o' (`rmail-output') command in Rmail appends a copy of the
  638. current message to a specified file, in Unix mail file format.  This
  639. is useful for moving messages into files to be read by other mail
  640. processors that do not understand Rmail format.
  641.  
  642.    Copying a message with `o' or `C-o' gives the original copy of the
  643. message the `filed' attribute, `filed' appears in the mode line when
  644. such a message is current.
  645.  
  646.    Normally you should use only `o' to output messages to other Rmail
  647. files, never `C-o'.  But it is also safe if you always use `C-o',
  648. never `o'.  When a file is visited in Rmail, the last message is
  649. checked, and if it is in Unix format, the entire file is scanned and
  650. all Unix-format messages are converted to Rmail format.  (The reason
  651. for checking the last message is that scanning the file is slow and
  652. most Rmail files have only Rmail format messages.)  If you use `C-o'
  653. consistently, the last message is guaranteed to be in Unix format, so
  654. Rmail will convert all messages properly.
  655.  
  656.    When you and other users want to append mail to the same file, you
  657. probably always want to use `C-o' instead of `o'.  Other mail
  658. processors may not know Rmail format but will know Unix format.
  659.  
  660.    In any case, always use `o' to add to an Rmail file that is being
  661. visited in Rmail.  Adding messages with `C-o' to the actual disk file
  662. will trigger a "simultaneous editing" warning when you ask to save the
  663. Emacs buffer, and the messages will be lost if you do save.
  664.  
  665. 
  666. File: emacs,  Node: Rmail Labels,  Next: Rmail Summary,  Prev: Rmail Output,  Up: Rmail
  667.  
  668. Labels
  669. ======
  670.  
  671.    Each message can have various "labels" assigned to it as a means of
  672. classification.  A label has a name; different names mean different
  673. labels.  Any given label is either present or absent on a particular
  674. message.  A few label names have standard meanings and are given to
  675. messages automatically by Rmail when appropriate; these special labels
  676. are called "attributes".  All other labels are assigned by the user.
  677.  
  678. `a LABEL RET'
  679.      Assign the label LABEL to the current message (`rmail-add-label').
  680.  
  681. `k LABEL RET'
  682.      Remove the label LABEL from the current message
  683.      (`rmail-kill-label').
  684.  
  685. `C-M-n LABELS RET'
  686.      Move to the next message that has one of the labels LABELS
  687.      (`rmail-next-labeled-message').
  688.  
  689. `C-M-p LABELS RET'
  690.      Move to the previous message that has one of the labels LABELS
  691.      (`rmail-previous-labeled-message').
  692.  
  693. `C-M-l LABELS RET'
  694.      Make a summary of all messages containing any of the labels LABELS
  695.      (`rmail-summary-by-labels').
  696.  
  697. Specifying an empty string for one these commands means to use the last
  698. label specified for any of these commands.
  699.  
  700.    The `a' (`rmail-add-label') and `k' (`rmail-kill-label') commands
  701. allow you to assign or remove any label on the current message.  If
  702. the LABEL argument is empty, it means to assign or remove the label
  703. most recently assigned or removed.
  704.  
  705.    Once you have given messages labels to classify them as you wish,
  706. there are two ways to use the labels: in moving and in summaries.
  707.  
  708.    The command `C-M-n LABELS RET' (`rmail-next-labeled-message') moves
  709. to the next message that has one of the labels LABELS.  LABELS is one
  710. or more label names, separated by commas.  `C-M-p'
  711. (`rmail-previous-labeled-message') is similar, but moves backwards to
  712. previous messages.  A preceding numeric argument to either one serves
  713. as a repeat count.
  714.  
  715.    The command `C-M-l LABELS RET' (`rmail-summary-by-labels') displays
  716. a summary containing only the messages that have at least one of a
  717. specified set of messages.  The argument LABELS is one or more label
  718. names, separated by commas.  *Note Rmail Summary::, for information on
  719. summaries.
  720.  
  721.    If the LABELS argument to `C-M-n', `C-M-p' or `C-M-l' is empty, it
  722. means to use the last set of labels specified for any of these
  723. commands.
  724.  
  725.    Some labels such as `deleted' and `filed' have built-in meanings
  726. and are assigned to or removed from messages automatically at
  727. appropriate times; these labels are called "attributes".  Here is a
  728. list of Rmail attributes:
  729.  
  730. `unseen'
  731.      Means the message has never been current.  Assigned to messages
  732.      when they come from an inbox file, and removed when a message is
  733.      made current.
  734.  
  735. `deleted'
  736.      Means the message is deleted.  Assigned by deletion commands and
  737.      removed by undeletion commands (*note Rmail Deletion::.).
  738.  
  739. `filed'
  740.      Means the message has been copied to some other file.  Assigned
  741.      by the file output commands (*note Rmail Files::.).
  742.  
  743. `answered'
  744.      Means you have mailed an answer to the message.  Assigned by the
  745.      `r' command (`rmail-reply').  *Note Rmail Reply::.
  746.  
  747. `forwarded'
  748.      Means you have forwarded the message to other users.  Assigned by
  749.      the `f' command (`rmail-forward').  *Note Rmail Reply::.
  750.  
  751. `edited'
  752.      Means you have edited the text of the message within Rmail. 
  753.      *Note Rmail Editing::.
  754.  
  755.    All other labels are assigned or removed only by the user, and it
  756. is up to the user to decide what they mean.
  757.  
  758. 
  759. File: emacs,  Node: Rmail Summary,  Next: Rmail Reply,  Prev: Rmail Labels,  Up: Rmail
  760.  
  761. Summaries
  762. =========
  763.  
  764.    A "summary" is a buffer Rmail creates and displays to give you an
  765. overview of the mail in an Rmail file.  It contains one line per
  766. message; each line shows the message number, the sender, the labels,
  767. and the subject.  When you select the summary buffer, you can use a
  768. number of commands to select messages by moving in the summary buffer,
  769. or to delete or undelete messages.
  770.  
  771.    A summary buffer applies to a single Rmail file only; if you are
  772. editing multiple Rmail files, they have separate summary buffers.  The
  773. summary buffer name is generated by appending `-summary' to the Rmail
  774. buffer's name.  Only one summary buffer is displayed at a time unless
  775. you make several windows and select the summary buffers by hand.
  776.  
  777. * Menu:
  778.  
  779. * Rmail Make Summary::  Making various sorts of summaries.
  780. * Rmail Summary Edit::  Manipulating messages from the summary.
  781.  
  782. 
  783. File: emacs,  Node: Rmail Make Summary,  Next: Rmail Summary Edit,  Prev: Rmail Summary,  Up: Rmail Summary
  784.  
  785. Making Summaries
  786. ----------------
  787.  
  788.    Here are the commands to create a summary for the current Rmail
  789. file.  Summaries do not update automatically; to make an updated
  790. summary, you must use one of the commands again.
  791.  
  792. `h'
  793. `C-M-h'
  794.      Summarize all messages (`rmail-summary').
  795.  
  796. `l LABELS RET'
  797. `C-M-l LABELS RET'
  798.      Summarize message that have one or more of the specified labels
  799.      (`rmail-summary-by-labels').
  800.  
  801. `C-M-r RCPTS RET'
  802.      Summarize messages that have one or more of the specified
  803.      recipients (`rmail-summary-by-recipients')
  804.  
  805.    The `h' or `C-M-h' (`rmail-summary') command fills the summary
  806. buffer for the current Rmail file with a summary of all the messages
  807. in the file.  It then displays and selects the summary buffer in
  808. another window.
  809.  
  810.    `C-M-l LABELS RET' (`rmail-summary-by-labels') makes a partial
  811. summary mentioning only the messages that have one or more of the
  812. labels LABELS.  LABELS should contain label names separated by commas.
  813.  
  814.    `C-M-r RCPTS RET' (`rmail-summary-by-recipients') makes a partial
  815. summary mentioning only the messages that have one or more of the
  816. recipients RCPTS.  RCPTS should contain mailing addresses separated by
  817. commas.
  818.  
  819.    Note that there is only one summary buffer for any Rmail file;
  820. making one kind of summary discards any previously made summary.
  821.  
  822. 
  823. File: emacs,  Node: Rmail Summary Edit,  Prev: Rmail Make Summary,  Up: Rmail Summary
  824.  
  825. Editing in Summaries
  826. --------------------
  827.  
  828.    Summary buffers are given the major mode Rmail Summary mode, which
  829. provides the following special commands:
  830.  
  831. `j'
  832.      Select the message described by the line that point is on
  833.      (`rmail-summary-goto-msg').
  834.  
  835. `C-n'
  836.      Move to next line and select its message in Rmail
  837.      (`rmail-summary-next-all').
  838.  
  839. `C-p'
  840.      Move to previous line and select its message (`rmail-summary-
  841.      previous-all').
  842.  
  843. `n'
  844.      Move to next line, skipping lines saying `deleted', and select its
  845.      message (`rmail-summary-next-msg').
  846.  
  847. `p'
  848.      Move to previous line, skipping lines saying `deleted', and select
  849.      its message (`rmail-summary-previous-msg').
  850.  
  851. `d'
  852.      Delete the current line's message, then do like `n'
  853.      (`rmail-summary-delete-forward').
  854.  
  855. `u'
  856.      Undelete and select this message or the previous deleted message
  857.      in the summary (`rmail-summary-undelete').
  858.  
  859. `SPC'
  860.      Scroll the other window (presumably Rmail) forward
  861.      (`rmail-summary-scroll-msg-up').
  862.  
  863. `DEL'
  864.      Scroll the other window backward
  865.      (`rmail-summary-scroll-msg-down').
  866.  
  867. `x'
  868.      Kill the summary window (`rmail-summary-exit').
  869.  
  870. `q'
  871.      Exit Rmail (`rmail-summary-quit').
  872.  
  873.    The keys `C-n' and `C-p' are modified in Rmail Summary mode.  In
  874. addition to moving point in the summary buffer they also cause the
  875. line's message to become current in the associated Rmail buffer.  That
  876. buffer is also made visible in another window if it is not currently
  877. visible.
  878.  
  879.    `n' and `p' are similar to `C-n' and `C-p', but skip lines that say
  880. `message deleted'.  They are like the `n' and `p' keys of Rmail
  881. itself.  Note, however, that in a partial summary these commands move
  882. only among the message listed in the summary.
  883.  
  884.    The other Emacs cursor motion commands are not changed in Rmail
  885. Summary mode, so it is easy to get the point on a line whose message is
  886. not selected in Rmail.  This can also happen if you switch to the Rmail
  887. window and switch messages there.  To get the Rmail buffer back in sync
  888. with the summary, use the `j' (`rmail-summary-goto-msg') command,
  889. which selects the message of the current summary line in Rmail.
  890.  
  891.    Deletion and undeletion can also be done from the summary buffer. 
  892. They always work based on where point is located in the summary buffer,
  893. ignoring which message is selected in Rmail.  `d'
  894. (`rmail-summary-delete-forward') deletes the current line's message,
  895. then moves to the next line whose message is not deleted and selects
  896. that message.  The inverse is `u' (`rmail-summary-undelete'), which
  897. moves back (if necessary) to a line whose message is deleted,
  898. undeletes that message, and selects it in Rmail.
  899.  
  900.    When moving through messages with the summary buffer, it is
  901. convenient to be able to scroll the message while remaining in the
  902. summary window.  The commands SPC (`rmail-summary-scroll-msg-up') and
  903. DEL (`rmail-summary-scroll-msg-down') do this.  They scroll the
  904. message just as they do when the Rmail buffer is selected.
  905.  
  906.    When you are finished using the summary, type `x'
  907. (`rmail-summary-exit') to kill the summary buffer's window.
  908.  
  909.    You can also exit Rmail while in the summary.  `q'
  910. (`rmail-summary-quit') kills the summary window, then saves the Rmail
  911. file and switches to another buffer.
  912.  
  913. 
  914. File: emacs,  Node: Rmail Reply,  Next: Rmail Editing,  Prev: Rmail Summary,  Up: Rmail
  915.  
  916. Sending Replies
  917. ===============
  918.  
  919.    Rmail has several commands that use Mail mode to send mail.  *Note
  920. Sending Mail::, for information on using Mail mode.  Only the special
  921. commands of Rmail for entering Mail mode are documented here.  Note
  922. that the usual keys for sending mail, `C-x m' and `C-x 4 m', are
  923. available in Rmail mode and work just as they usually do.
  924.  
  925. `m'
  926.      Send a message (`rmail-mail').
  927.  
  928. `c'
  929.      Continue editing already started outgoing message
  930.      (`rmail-continue').
  931.  
  932. `r'
  933.      Send a reply to the current Rmail message (`rmail-reply').
  934.  
  935. `f'
  936.      Forward current message to other users (`rmail-forward').
  937.  
  938.    To reply to a the message you are reading in Rmail, type `r'
  939. (`rmail-reply').  This displays the `*mail*' buffer in another window,
  940. much like `C-x 4 m', but pre-initializes the `Subject', `To', `CC' and
  941. `In-reply-to' header fields based on the message you reply to.  The
  942. `To' field is given the sender of that message, and the `CC' gets all
  943. the recipients of that message.  Recipients that match elements of the
  944. list `rmail-dont-reply-to' are omitted; by default, this list contains
  945. your own mailing address.
  946.  
  947.    Once you have initialized the `*mail*' buffer this way, sending the
  948. mail goes as usual (*note Sending Mail::.).  You can edit the
  949. presupplied header fields if they are not what you want.
  950.  
  951.    One additional Mail mode command is available when you invoke mail
  952. from Rmail: `C-c C-y' (`mail-yank-original') inserts into the outgoing
  953. message a copy of the current Rmail message.  Normally this is the
  954. message you are replying to, but you can also switch to the Rmail
  955. buffer, select a different message, switch back, and yank the new
  956. current message.  Normally the yanked message is indented four spaces
  957. and has most header fields deleted from it; an argument to `C-c C-y'
  958. specifies the amount to indent, and `C-u C-c C-y' does not indent at
  959. all and does not delete any header fields.
  960.  
  961.    Another frequent reason to send mail in Rmail is to forward the
  962. current message to other users.  `f' (`rmail-forward') makes this easy
  963. by preinitializing the `*mail*' buffer with the current message as the
  964. text, and a subject designating a forwarded message.  All you have to
  965. do is fill in the recipients and send.
  966.  
  967.    You can use the `m' (`rmail-mail') command to start editing an
  968. outgoing message that is not a reply.  It leaves the header fields
  969. empty.  Its only difference from `C-x 4 m' is that it makes the Rmail
  970. buffer accessible for `C-c y', just as `r' does.  Thus, `m' can be
  971. used to reply to or forward a message; it can do anything `r' or `f'
  972. can do.
  973.  
  974.    The `c' (`rmail-continue') command resumes editing the `*mail*'
  975. buffer, to finish editing an outgoing message you were already
  976. composing, or to alter a message you have sent.
  977.  
  978. 
  979. File: emacs,  Node: Rmail Editing,  Next: Rmail Digest,  Prev: Rmail Reply,  Up: Rmail
  980.  
  981. Editing Within a Message
  982. ========================
  983.  
  984.    Rmail mode provides a few special commands for moving within and
  985. editing the current message.  In addition, the usual Emacs commands are
  986. available (except for a few, such as `C-M-n' and `C-M-h', that are
  987. redefined by Rmail for other purposes).  However, the Rmail buffer is
  988. normally read-only, and to alter it you must use the Rmail command `w'
  989. described below.
  990.  
  991. `t'
  992.      Toggle display of original headers (`rmail-toggle-headers').
  993.  
  994. `w'
  995.      Edit current message (`rmail-edit-current-message').
  996.  
  997.    Rmail reformats the header of each message before displaying it. 
  998. Normally this involves deleting most header fields, on the grounds that
  999. they are not interesting.  The variable `rmail-ignored-headers' should
  1000. contain a regexp that matches the header fields to discard in this
  1001. way.  The original headers are saved permanently; to see what they
  1002. look like, use the `t' (`rmail-toggle-headers') command.  This
  1003. discards the reformatted headers of the current message and displays it
  1004. with the original headers.  Repeating `t' reformats the message again.
  1005.  Selecting the message again also reformats.
  1006.  
  1007.    The Rmail buffer is normally read only, and most of the characters
  1008. you would type to modify it (including most letters) are redefined as
  1009. Rmail commands.  This is usually not a problem since people rarely
  1010. want to change the text of a message.  When you do want to do this,
  1011. type `w' (`rmail-edit-current-message'), which changes from Rmail mode
  1012. to Rmail Edit mode, another major mode which is nearly the same as Text
  1013. mode.  The mode line indicates this change.
  1014.  
  1015.    In Rmail Edit mode, letters insert themselves as usual and the Rmail
  1016. commands are not available.  When you are finished editing the message
  1017. and are ready to go back to Rmail, type `C-c C-c', which switches back
  1018. to Rmail mode.  To return to Rmail mode but cancel all the editing you
  1019. have done, type `C-c C-]'.
  1020.  
  1021.    Entering Rmail Edit mode calls the value of the variable
  1022. `text-mode-hook' with no arguments, if that value exists and is not
  1023. `nil'.  It then does the same with the variable `rmail-edit-mode-hook'
  1024. and finally adds the attribute `edited' to the message.
  1025.  
  1026. 
  1027. File: emacs,  Node: Rmail Digest,  Prev: Rmail Editing,  Up: Rmail
  1028.  
  1029. Digest Messages
  1030. ===============
  1031.  
  1032.    A "digest message" is a message which exists to contain and carry
  1033. several other messages.  Digests are used on moderated mailing lists. 
  1034. All messages that arrive for the list during a period of time, such as
  1035. one day, are put inside a single digest which is then sent to the
  1036. subscribers.  Transmitting the single digest uses much less computer
  1037. time than transmitting the individual messages even though the total
  1038. size is the same, because the per-message overhead in network mail
  1039. transmission is considerable.
  1040.  
  1041.    When you receive a digest message, the most convenient way to read
  1042. it is to "undigestify" it: to turn it back into many individual
  1043. messages.  You can then read and delete the individual messages as it
  1044. suits you.
  1045.  
  1046.    To undigestify a message, select it and then type `M-x
  1047. undigestify-rmail-message'.  This copies each submessage as a separate
  1048. Rmail message and inserts them all following the digest.  The digest
  1049. message itself is flagged as deleted.
  1050.  
  1051. 
  1052. File: emacs,  Node: Recursive Edit,  Next: Narrowing,  Prev: Rmail,  Up: Top
  1053.  
  1054. Recursive Editing Levels
  1055. ========================
  1056.  
  1057.    A "recursive edit" is a situation in which you are using Emacs
  1058. commands to perform arbitrary editing while in the middle of another
  1059. Emacs command.  For example, when you type `C-r' inside a
  1060. `query-replace', you enter a recursive edit in which you can change
  1061. the current buffer.  When you exit from the recursive edit, you go
  1062. back to the `query-replace'.
  1063.  
  1064.    "Exiting" a recursive edit means returning to the unfinished
  1065. command, which continues execution.  For example, exiting the recursive
  1066. edit requested by `C-r' in `query-replace' causes query replacing to
  1067. resume.  Exiting is done with `C-M-c' (`exit-recursive-edit').
  1068.  
  1069.    You can also "abort" a recursive edit.  This is like exiting, but
  1070. also quits the unfinished command immediately.  Use the command `C-]'
  1071. (`abort-recursive-edit') for this.  *Note Quitting::.
  1072.  
  1073.    The mode line shows you when you are in a recursive edit by
  1074. displaying square brackets around the parentheses that always surround
  1075. the major and minor mode names.  Every window's mode line shows the
  1076. square brackets, since Emacs as a whole, rather than any particular
  1077. buffer, is in a recursive edit.
  1078.  
  1079.    It is possible to be in recursive edits within recursive edits.  For
  1080. example, after typing `C-r' in a `query-replace', you might type a
  1081. command that entered the debugger.  In such circumstances, two or more
  1082. sets of square brackets appear in the mode line(s).  Exiting the inner
  1083. recursive edit (for example, with the debugger `c' command) resumes
  1084. the query-replace command where it called the debugger.  After the end
  1085. of the query-replace command, you would be able to exit the first
  1086. recursive edit.  Aborting exits only one level of recursive edit; it
  1087. returns to the command level of the previous recursive edit.  You can
  1088. then abort that one as well.
  1089.  
  1090.    The command `M-x top-level' aborts all levels of recursive edits,
  1091. returning immediately to the top level command reader.
  1092.  
  1093.    The text you edit inside the recursive edit need not be the same
  1094. text that you were editing at top level.  It depends on what the
  1095. recursive edit is for.  If the command that invokes the recursive edit
  1096. selects a different buffer first, that is the buffer you will edit
  1097. recursively.  You can switch buffers within the recursive edit in the
  1098. normal manner (as long as the buffer-switching keys have not been
  1099. rebound).  While you could theoretically do the rest of your editing
  1100. inside the recursive edit, including visiting files, this could have
  1101. surprising effects (such as stack overflow) from time to time.  It is
  1102. recommended you always exit or abort a recursive edit when you no
  1103. longer need it.
  1104.  
  1105.    In general, GNU Emacs tries to avoid using recursive edits.  It is
  1106. usually preferable to allow users to switch among the possible editing
  1107. modes in any order they like.  With recursive edits, the only way to
  1108. get to another state is to go "back" to the state that the recursive
  1109. edit was invoked from.
  1110.  
  1111. 
  1112. File: emacs,  Node: Narrowing,  Next: Sorting,  Prev: Recursive Edit,  Up: Top
  1113.  
  1114. Narrowing
  1115. =========
  1116.  
  1117.    "Narrowing" means focusing in on some portion of the buffer, making
  1118. the rest temporarily invisible and inaccessible.  Cancelling the
  1119. narrowing, and making the entire buffer once again visible, is called
  1120. "widening".  The amount of narrowing in effect in a buffer at any time
  1121. is called the buffer's "restriction".
  1122.  
  1123. `C-x n'
  1124.      Narrow down to between point and mark (`narrow-to-region').
  1125.  
  1126. `C-x w'
  1127.      Widen to make the entire buffer visible again (`widen').
  1128.  
  1129.    Narrowing sometimes makes it easier to concentrate on a single
  1130. subroutine or paragraph by eliminating clutter.  It can also be used to
  1131. restrict the range of operation of a replace command or repeating
  1132. keyboard macro.  The word `Narrow' appears in the mode line whenever
  1133. narrowing is in effect.  When you have narrowed to a part of the
  1134. buffer, that part appears to be all there is.  You can't see the rest,
  1135. can't move into it (motion commands won't go outside the visible part),
  1136. and can't change it in any way.  However, the invisible text is not
  1137. gone; if you save the file, it will be saved.
  1138.  
  1139.    The primary narrowing command is `C-x n' (`narrow-to-region').  It
  1140. sets the current buffer's restrictions so that the text in the current
  1141. region remains visible but all text before the region or after the
  1142. region is invisible.  Point and mark do not change.
  1143.  
  1144.    Because narrowing can easily confuse users who do not understand it,
  1145. `narrow-to-region' is normally a disabled command.  Attempting to use
  1146. this command asks for confirmation and gives you the option of
  1147. enabling it; once you enable the command, confirmation will no longer
  1148. be required.  *Note Disabling::.
  1149.  
  1150.    To undo narrowing, use `C-x w' (`widen').  This makes all text in
  1151. the buffer accessible again.
  1152.  
  1153.    Use the `C-x =' command to get information on what part of the
  1154. buffer you narrowed down.  *Note Position Info::.
  1155.  
  1156.